package com.tom.architect.day01.simple5.simple6.framework;

import android.content.Context;

import com.google.gson.Gson;
import com.tom.architect.day01.simple5.EngineCallBack;
import com.tom.architect.day01.simple5.HttpUtils;

import java.util.Map;

// 统一处理添加公共参数。包含业务逻辑层
public abstract class HttpCallBack<T> implements EngineCallBack {

    @Override
    public void onPreExecute(Context context, Map params) {
        params.put("app_name", "joke_essay");
        params.put("version_name", "1.2.3");
        params.put("ac", "wifi");
        //... 添加公共请求参数,必带的参数

        onPreExecute();
    }

    // 开始执行了，
    public void onPreExecute() {

    }

    @Override
    public void onSuccess(String result) {
        Gson gson = new Gson();
        // 避免后台返回的data，成功与失败的数据不一样。转json不报错。
        T objResult = (T) gson.fromJson(result, HttpUtils.analysisClazzInfo(this));
        onSuccess(objResult);
    }

    // 返回可以直接操作的对象
    public abstract void onSuccess(T result) ;

}
